/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意：
* 本软件为www.yixiang.co开发研制，未经购买不得使用
* 购买后可获得全部源代码（禁止转卖、分享、上传到码云、github等开源平台）
* 一经发现盗用、分享等行为，将追究法律责任，后果自负
*/
package co.yixiang.modules.auction.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.validation.constraints.*;
import java.util.Date;
import java.sql.Timestamp;
import java.math.BigDecimal;
import java.io.Serializable;

/**
* @author ycl
* @date 2021-02-18
*/
@Data
@TableName("yx_auction_record")
public class AuctionRecord implements Serializable {

    @TableId
    private Long id;


    /** 拍卖商品id */
    @NotNull(message = "拍卖商品为空")
    private Long auctionProductId;


    /** 拍卖价 */
    @NotNull(message = "拍卖价为空")
    private BigDecimal price;


    /** 封顶价 */
    private BigDecimal topPrice;


    private BigDecimal reservePrice;


    /** 手续费 */
    private BigDecimal serviceCharge;


    /** 一级分佣0-10 */
    private Integer firstCommission;


    /** 二级分佣0-10小于一及分佣 */
    private Integer secondCommission;


    /** 抢拍开始时间 */
    @NotNull(message = "开始时间为空")
    private Date startTime;


    /** 时间段 */
    @NotNull(message = "时间段为空")
    private Long timeId;


    /** 状态0等待补拍1补拍中2补拍完成 */
    private Integer status;


    /** 转拍用户id */
    private Integer userId;


    /** 是否已被购买0否1是 */
    private Integer isBuy;


    /** 父抢拍单id */
    private Integer parentId;


    /** 凭证 */
    private String confirmVoucher;


    /** 支付方式1支付宝2微信3余额4银联 */
    private Integer payType;


    @TableField(fill= FieldFill.INSERT_UPDATE)
    private Timestamp updateTime;


    /** 创建时间 */
    @TableField(fill= FieldFill.INSERT)
    private Timestamp createTime;


    private Integer isMax;

    private Long upId;


    private Long payId;


    public void copy(AuctionRecord source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}
